Micron Document
| SparkN0de-git | SparkN0de |


Displaying Raw • View renderedDownload


README.md bc8969ab162af244f42eabca93382e30c471f72a (bc8969ab) Text, 6.84 KB

Tc9d1d9# Reticulum MeshChatX

[Tff7b72Русский](Te6edf3lang/README.ru.md) | [Tff7b72Deutsch](Te6edf3lang/README.de.md) | [Tff7b72Italiano](Te6edf3lang/README.it.md) | [Tff7b72中文](Te6edf3lang/README.zh.md) | [Tff7b72日本語](Te6edf3lang/README.ja.md)

A extensively modified and feature-rich fork of Reticulum MeshChat by Liam Cottle.

This project is independent from the original Reticulum MeshChat project and is not affiliated with it.

Tff7b72- Source: [Tff7b72git.quad4.io/RNS-Things/MeshChatX](Te6edf3https://git.quad4.io/RNS-Things/MeshChatX)
Tff7b72- Releases: [Tff7b72git.quad4.io/RNS-Things/MeshChatX/releases](Te6edf3https://git.quad4.io/RNS-Things/MeshChatX/releases)
Tff7b72- Changelog: [Ta5d6ff`CHANGELOG.md`](CHANGELOG.md)

Tc9d1d9## Important Notes

Tff7b72- Uses LXST
Tff7b72- Replaced Peewee ORM with raw SQL.

Tff7b72> [!WARNING]
Tff7b72> MeshChatX is not guaranteed to be wire/data compatible with older Reticulum MeshChat releases. Back up data before migration/testing.

Tff7b72> [!WARNING]
Tff7b72> Legacy systems are not fully supported yet. Current baseline is Python `>=3.11` and Node `>=24`.

Tc9d1d9## Demo And Screenshots

<video src="https://strg.0rbitzer0.net/raw/62926a2a-0a9a-4f44-a5f6-000dd60deac1.mp4" controls="controls" style="max-width: 100%;"></video>

Tc9d1d9### UI Previews

![Tff7b72Phone](Te6edf3screenshots/phone.png)
![Tff7b72Network Visualiser](Te6edf3screenshots/network-visualiser.png)
![Tff7b72Archives](Te6edf3screenshots/archives.png)
![Tff7b72Identities](Te6edf3screenshots/identities.png)

Tc9d1d9## Requirements

Tff7b72- Python Ta5d6ff`>=3.11` (from Ta5d6ff`pyproject.toml`)
Tff7b72- Node.js Ta5d6ff`>=24` (from Ta5d6ff`package.json`)
Tff7b72- pnpm Ta5d6ff`10.30.0` (from Ta5d6ff`package.json`)
Tff7b72- Poetry (used by Ta5d6ff`Taskfile.yml` and CI workflows)

Tc9d1d9## Nix (flake.nix)

This repo includes a Nix flake at Ta5d6ff`flake.nix`.

Tc9d1d9### Enter the dev shell

Ta5d6ff```Ta5d6ffbash
nix develop
Ta5d6ff```

The flake dev shell provides Python, Poetry, Node, pnpm, Task, packaging tools (Ta5d6ff`rpm`, Ta5d6ff`dpkg`, Ta5d6ff`fakeroot`), Android build tools, and Docker tooling.

Tc9d1d9### Build the default Nix package

Ta5d6ff```Ta5d6ffbash
nix build .#default
Ta5d6ff```

Tc9d1d9### Typical workflow inside `nix develop`

Ta5d6ff```Ta5d6ffbash
task install
task lint:all
task test:all
task build:all
Ta5d6ff```

Tc9d1d9## Install Methods

Use the method that matches your environment and packaging preference.

| Method | Includes frontend assets | Architectures | Best for |
| --- | --- | --- | --- |
| Docker image | Yes | Ta5d6ff`linux/amd64`, Ta5d6ff`linux/arm64` | Fastest setup on Linux servers/hosts |
| Python wheel (Ta5d6ff`.whl`) | Yes | Any Python-supported architecture | Headless/web-server install without Node build |
| Linux AppImage | Yes | Ta5d6ff`x64`, Ta5d6ff`arm64` | Portable desktop use |
| Debian package (Ta5d6ff`.deb`) | Yes | Ta5d6ff`x64`, Ta5d6ff`arm64` | Debian/Ubuntu installs |
| RPM package (Ta5d6ff`.rpm`) | Yes | CI-runner dependent for published artifact | Fedora/RHEL/openSUSE style systems |
| From source | Built locally | Host architecture | Development and custom builds |

Notes:

Tff7b72- The release workflow explicitly builds Linux Ta5d6ff`x64` and Ta5d6ff`arm64` AppImage + DEB.
Tff7b72- RPM is also attempted by release workflow and uploaded when produced.

Tc9d1d9## Quick Start: Docker

Ta5d6ff```Ta5d6ffbash
docker compose up -d
Ta5d6ff```

Default compose file maps:

Tff7b72- Ta5d6ff`127.0.0.1:8000` on host -> container port Ta5d6ff`8000`
Tff7b72- Ta5d6ff`./meshchat-config` -> Ta5d6ff`/config` for persistence

If your local Ta5d6ff`meshchat-config` permissions block writes, fix ownership:

Ta5d6ff```Ta5d6ffbash
sudo chown -R T79c0ff1000:1000 ./meshchat-config
Ta5d6ff```

Tc9d1d9## Install from Release Artifacts

Tc9d1d9### 1) Linux AppImage (x64/arm64)

Tff7b721. Download Ta5d6ff`ReticulumMeshChatX-v<version>-linux-<arch>.AppImage` from releases.
Tff7b722. Make it executable and run:

Ta5d6ff```Ta5d6ffbash
chmod +x ./ReticulumMeshChatX-v*-linux-*.AppImage
./ReticulumMeshChatX-v*-linux-*.AppImage
Ta5d6ff```

Tc9d1d9### 2) Debian/Ubuntu `.deb` (x64/arm64)

Tff7b721. Download Ta5d6ff`ReticulumMeshChatX-v<version>-linux-<arch>.deb`.
Tff7b722. Install:

Ta5d6ff```Ta5d6ffbash
sudo apt install ./ReticulumMeshChatX-v*-linux-*.deb
Ta5d6ff```

Tc9d1d9### 3) RPM-based systems

Tff7b721. Download Ta5d6ff`ReticulumMeshChatX-v<version>-linux-<arch>.rpm` if present in the release.
Tff7b722. Install with your distro tool:

Ta5d6ff```Ta5d6ffbash
sudo rpm -Uvh ./ReticulumMeshChatX-v*-linux-*.rpm
Ta5d6ff```

Tc9d1d9### 4) Python wheel (`.whl`)

Release wheels include the built web assets.

Ta5d6ff```Ta5d6ffbash
pip install ./reticulum_meshchatx-*-py3-none-any.whl
meshchat --headless
Ta5d6ff```

Ta5d6ff`pipx` is also supported:

Ta5d6ff```Ta5d6ffbash
pipx install ./reticulum_meshchatx-*-py3-none-any.whl
Ta5d6ff```

Tc9d1d9## Run from Source (Web Server Mode)

Use this when developing or when you need a local custom build.

Ta5d6ff```Ta5d6ffbash
git clone https://git.quad4.io/RNS-Things/MeshChatX.git
Tffa657cd MeshChatX
corepack Tffa657enable
pnpm install
pip install poetry
poetry install
pnpm run build-frontend
poetry run meshchat --headless --host T79c0ff127.0.0.1
Ta5d6ff```

Tc9d1d9## Build Desktop Packages from Source

These scripts are defined in Ta5d6ff`package.json` and Ta5d6ff`Taskfile.yml`.

Tc9d1d9### Linux x64 AppImage + DEB

Ta5d6ff```Ta5d6ffbash
pnpm run dist:linux-x64
Ta5d6ff```

Tc9d1d9### Linux arm64 AppImage + DEB

Ta5d6ff```Ta5d6ffbash
pnpm run dist:linux-arm64
Ta5d6ff```

Tc9d1d9### RPM

Ta5d6ff```Ta5d6ffbash
pnpm run dist:rpm
Ta5d6ff```

Or through Task:

Ta5d6ff```Ta5d6ffbash
task dist:fe:rpm
Ta5d6ff```

Tc9d1d9## Architecture Support Summary

Tff7b72- Docker image: Ta5d6ff`amd64`, Ta5d6ff`arm64`
Tff7b72- Linux AppImage: Ta5d6ff`x64`, Ta5d6ff`arm64`
Tff7b72- Linux DEB: Ta5d6ff`x64`, Ta5d6ff`arm64`
Tff7b72- Windows: Ta5d6ff`x64`, Ta5d6ff`arm64` (build scripts available)
Tff7b72- macOS: build scripts available (Ta5d6ff`arm64`, Ta5d6ff`universal`) for local build environments
Tff7b72- Android: build workflow and Android project are present in this repository

Tc9d1d9## Android

Use the dedicated docs:

Tff7b72- [Ta5d6ff`docs/meshchatx_on_android_with_termux.md`](docs/meshchatx_on_android_with_termux.md)
Tff7b72- [Ta5d6ff`android/README.md`](android/README.md)

Tc9d1d9## Configuration

MeshChatX supports both CLI args and env vars.

| Argument | Environment Variable | Default | Description |
| --- | --- | --- | --- |
| Ta5d6ff`--host` | Ta5d6ff`MESHCHAT_HOST` | Ta5d6ff`127.0.0.1` | Web server bind address |
| Ta5d6ff`--port` | Ta5d6ff`MESHCHAT_PORT` | Ta5d6ff`8000` | Web server port |
| Ta5d6ff`--no-https` | Ta5d6ff`MESHCHAT_NO_HTTPS` | Ta5d6ff`false` | Disable HTTPS |
| Ta5d6ff`--headless` | Ta5d6ff`MESHCHAT_HEADLESS` | Ta5d6ff`false` | Do not auto-launch browser |
| Ta5d6ff`--auth` | Ta5d6ff`MESHCHAT_AUTH` | Ta5d6ff`false` | Enable basic auth |
| Ta5d6ff`--storage-dir` | Ta5d6ff`MESHCHAT_STORAGE_DIR` | Ta5d6ff`./storage` | Data directory |
| Ta5d6ff`--public-dir` | Ta5d6ff`MESHCHAT_PUBLIC_DIR` | auto/bundled | Frontend files directory (needed for source installs without bundled assets) |

Tc9d1d9## Development

Common tasks from Ta5d6ff`Taskfile.yml`:

Ta5d6ff```Ta5d6ffbash
task install
task lint:all
task test:all
task build:all
Ta5d6ff```

Tc9d1d9## Versioning

Current version in this repo is Ta5d6ff`4.2.1`.

Tff7b72- Ta5d6ff`package.json` is the JavaScript/Electron version source.
Tff7b72- Ta5d6ff`meshchatx/src/version.py` is synced from Ta5d6ff`package.json` using:

Ta5d6ff```Ta5d6ffbash
pnpm run version:sync
Ta5d6ff```

For release consistency, keep version fields aligned where required (Ta5d6ff`package.json`, Ta5d6ff`pyproject.toml`, Ta5d6ff`meshchatx/__init__.py`).

Tc9d1d9## Security

Security and integrity details:

Tff7b72- [Ta5d6ff`SECURITY.md`](SECURITY.md)
Tff7b72- Built-in integrity checks and HTTPS/WSS defaults in app runtime
Tff7b72- CI scanning workflows in Ta5d6ff`.gitea/workflows/`

Tc9d1d9## Credits

Tff7b72- [Tff7b72Liam Cottle](Te6edf3https://github.com/liamcottle) - Original Reticulum MeshChat
Tff7b72- [Tff7b72RFnexus](Te6edf3https://github.com/RFnexus) - micron parser JavaScript work
Tff7b72- [Tff7b72markqvist](Te6edf3https://github.com/markqvist) - Reticulum, LXMF, LXST


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────